今天宠物迷的小编给各位宠物饲养爱好者分享jboss设置内存的宠物知识,其中也会对jboss内存配置问题(jboss内存溢出)进行专业的解释,如果能碰巧解决你现在面临的宠物相关问题,别忘了关注本站哦,现在我们开始吧!
I'm sorry that I can't type Chinese in the office.
For your second question, the JVM heap size is not the memory size that the java**** will use in the operating system. That is a portion of memory that JVM reserved for the user objects. The GC will start up when the heap is full. So, if your heap size is so small, the GC will be triggered so frequently. That will affect your server performance.
这些是配置JBoss运行的JVM优化参数。
-Xms256m 初始的java内存堆大小 256M
-Xmx2048m 最大的java内存堆大小 2048M
-XX:PermSize=128m GC预留的内存,如果你的应用有大量的Class被动态载入或卸载,你应该不这个参数设大些
-XX:MaxPermSize=256m 最大的GC预留内存
-Dsun.rmi.dgc.client.gcInterval=3600000 RMI客户端GC发生周期的设定
-Dsun.rmi.dgc.server.gcInterval=3600000 RMI服务端GC发生周期的设定
物理内存24G,使用只有30%左右,基本上用不到虚拟内存的。
一般虚拟内存设置为物理内存的200%左右,但你的物理内存已达24G,虚拟内存设置24G也是合适的。
问题可能出在你的磁盘上,大量的读写操作使用磁盘成为瓶颈。可以考虑换磁盘阵列或固态盘以提高读写性能。
I'm sorry that I can't type Chinese in the office.
For your second question, the JVM heap size is not the memory size that the java**** will use in the operating system. That is a portion of memory that JVM reserved for the user objects. The GC will start up when the heap is full. So, if your heap size is so small, the GC will be triggered so frequently. That will affect your server performance.
这些是配置JBoss运行的JVM优化参数。
-Xms256m 初始的java内存堆大小 256M
-Xmx2048m 最大的java内存堆大小 2048M
-XX:PermSize=128m GC预留的内存,如果你的应用有大量的Class被动态载入或卸载,你应该不这个参数设大些
-XX:MaxPermSize=256m 最大的GC预留内存
-Dsun.rmi.dgc.client.gcInterval=3600000 RMI客户端GC发生周期的设定
-Dsun.rmi.dgc.server.gcInterval=3600000 RMI服务端GC发生周期的设定
用三种方法保存文件 1.鼠标点保存 2.关闭文件时有选择保存 3.快捷键保存 4.另存
快捷方式 鼠标右键新建快捷方式 把路径指向你的文件 或者点击文件发送到桌面快捷方式
在一些规模稍大的应用中,Java虚拟机(JVM)的内存设置尤为重要,想在项目中取得好的效率,GC(垃圾回收)的设置是第一步。
PermGen space:全称是Permanent Generation space.就是说是永久保存的区域,用于存放Class和Meta信息,Class在被Load的时候被放入该区域Heap space:存放Instance。
GC(Garbage Collection)应该不会对PermGen space进行清理,所以如果你的APP会LOAD很多CLASS的话,就很可能出现PermGen space错误
Java Heap分为3个区
1.Young
2.Old
3.Permanent
Young保存刚实例化的对象。当该区被填满时,GC会将对象移到Old区。Permanent区则负责保存反射对象,本文不讨论该区。
JVM的Heap分配可以使用-X参数设定,
-Xms
初始Heap大小
-Xmx
java heap最大值
-Xmn
young generation的heap大小
JVM有2个GC线程
第一个线程负责回收Heap的Young区
第二个线程在Heap不足时,遍历Heap,将Young 区升级为Older区
Older区的大小等于-Xmx减去-Xmn,不能将-Xms的值设的过大,因为第二个线程**运行会降低JVM的性能。
为什么一些程序频繁发生GC?
有如下原因:
1.程序内调用了System.gc()或Runtime.gc()。
2.一些中间件软件调用自己的GC方法,此时需要设置参数禁止这些GC。
3.Java的Heap太小,一般默认的Heap值都很小。
4.频繁实例化对象,Release对象 此时尽量保存并重用对象,例如使用StringBuffer()和String()。
如果你发现每次GC后,Heap的剩余空间会是总空间的50%,这表示你的Heap处于健康状态,许多Server端的Java程序每次GC后最好能有65%的剩余空间
经验之谈:
1.Server端JVM最好将-Xms和-Xmx设为相同值。为了优化GC,最好让-Xmn值约等于-Xmx的1/3。
2.一个GUI程序最好是每10到20秒间运行一次GC,每次在半秒之内完成。
注意:
1.增加Heap的大小虽然会降低GC的频率,但也增加了每次GC的时间。并且GC运行时,所有的用户线程将暂停,也就是GC期间,Java应用程序不做任何工作。
2.Heap大小并不决定进程的内存使用量。进程的内存使用量要大于-Xmx定义的值,因为Java为其他任务分配内存,例如每个线程的Stack等。
Stack的设定
每个线程都有他自己的Stack。
-Xss
每个线程的Stack大小
Stack的大小限制着线程的数量。如果Stack过大就好导致内存溢漏。-Xss参数决定Stack大小,例如-Xss1024K。如果Stack太小,也会导致Stack溢漏。
硬件环境
硬件环境也影响GC的效率,例如机器的种类,内存,swap空间,和CPU的数量。
如果你的程序需要频繁创建很多transient对象,会导致JVM频繁GC。这种情况你可以增加机器的内存,来减少Swap空间的使用。
4种GC
1、第一种为单线程GC,也是默认的GC,该GC适用于单CPU机器。
2、第二种为Throughput GC,是多线程的GC,适用于多CPU,使用大量线程的程序。第二种GC与第一种GC相似,不同在于GC在收集Young区是多线程的,但在Old区和第一种一样,仍然采用单线程。-XX:+UseParallelGC参数启动该GC。
3、第三种为Concurrent Low Pause GC,类似于第一种,适用于多CPU,并要求缩短因GC造成程序停滞的时间。这种GC可以在Old区的回收同时,运行应用程序。-XX:+UseConcMarkSweepGC参数启动该GC。
4、第四种为Incremental Low Pause GC,适用于要求缩短因GC造成程序停滞的时间。这种GC可以在Young区回收的同时,回收一部分Old区对象。-Xincgc参数启动该GC。
单文件的JVM内存进行设置
默认的java虚拟机的大小比较小,在对大数据进行处理时java就会报错:java.lang.OutOfMemoryError。
设置jvm内存的方法,对于单独的.class,可以用下面的方法对Test运行时的jvm内存进行设置。
java -Xms64m -Xmx256m Test
-Xms是设置内存初始化的大小
-Xmx是设置最大能够使用内存的大小(最好不要超过物理内存大小)
tomcat启动jvm内存设置
Linux:
在/usr/local/apache-tomcat-5.5.23/bin目录下的catalina.sh添加:JAVA_OPTS='-Xms512m -Xmx1024m'要加“m”说明是MB,否则就是KB了,在启动tomcat时会报内存不足。
-Xms:初始值
-Xmx:最大值
-Xmn:最小值Windows
在catalina.bat最前面加入
set JAVA_OPTS=-Xms128m -Xmx350m 如果用startup.bat启动tomcat,OK设置生效.够成功的分配200M内存.但是如果不是执行startup.bat启动tomcat而是利用windows的系统服务启动tomcat服务,上面的设置就不生效了,就是说set JAVA_OPTS=-Xms128m -Xmx350m 没起作用.上面分配200M内存就OOM了..windows服务执行的是bin\tomcat****.他读取注册表中的值,而不是catalina.bat的设置.解决办法:
修改注册表HKEY_LOCAL_MACHINE\SOFTWARE\Apache Software Foundation\Tomcat Service Manager\Tomcat5\Parameters\JavaOptions
原值为
-Dcatalina.home="C:\ApacheGroup\Tomcat 5.0"
-Djava.endorsed.dirs="C:\ApacheGroup\Tomcat 5.0\common\endorsed"
-Xrs加入 -Xms300m -Xmx350m
重起tomcat服务,设置生效
weblogic启动jvm内存设置
在weblogic中,可以在startweblogic.cmd中对每个domain虚拟内存的大小进行设置,默认的设置是在commEnv.cmd里面。
JBoss
默认可以使用的内存为64MB
$JBOSSDIR$/bin/run***nfig
JAVA_OPTS = "-server -Xms128 -Xmx512"
Eclipse
在所在目录下,键入
eclipse**** -vmargs -Xms256m -Xmx512m
256m表示JVM堆内存最小值
512m表示JVM堆内存最大
Websphere
进入控制台去设置:应用程序服务器 > server1 > 进程定义 > Java 虚拟机
方法/步骤
1
首先将项目的打的war包放到Jboss的jboss-as-7.1.1.Final\standalone\deployments中,将jboss上传到服务器上。
2
使用SSH进入到刚刚上传的位置,再Jboss的bin目录下。
3
给Jboss的bin目录下的所有文件赋权限 chmod 777 *。
4
已后台的方式启动Jboss。
启动:nohup ./standalone.sh&
查看Jboss启动进程: tail -f nohup.out
5
查看该服务器上启动了多少个Jboss,可以讲不要的进程杀掉kill -9 PID。
6
如果觉得后台启动麻烦,可以使用前台启动的方式,不过当你ctrl + C时,就回停止Jboss。
只能猜测,修正JAVA_OPTS参数,还有,切记不要把java相关的任何东西,放到带空格或中文的目录下,这个会坑死你的
若需要修改JBoss默认的log4j设置,可修改JBoss安装目录"server\default\conf下的jboss-log4j.xml文件,在该文件中可以看到,log4j的日志输出在JBoss安装目录"server\
如果使用log4j日志框架,将配置文件放在工程目录下的话容易引起与jboss日志配置的冲突,一个比较好的方式就是将日志配置到jboss的 jboss-log4j.xml文件中,文件的目录是($JBOSS)/server/default/conf。在配置文件中添加以下内容:
<!-- Rollover at the top of each hour
-->
<!-- The full pattern: Date MS Priority [Category] (Thread:NDC) Message/n
-->
在web工程中使用日志的时候就可以这样写
Logger log = Logger.getLogger("com.all");
log.debug("test");
其中"com.all"与 中的name属性值对应。additivity属性非常重要,它表示是否继承root配置的输出通道,默认配置是true,如果不将其设为false的话会导致日志重复输出到控制台与jboss的日志文件中。
boss7在哪里配置maxPostSize参数?如题,着急。。。... jboss7在哪里配置maxPostSize参数?如题,着急。。。<Connector... maxThreads="250" maxPostSize="0"maxHttpHe.
设置JVM内存的参数有四个:-Xmx Java Heap最大值,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定;-Xms Java Heap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值;-Xmn Java Heap Young区大小,不熟悉最好保留默认值;-Xss 每个线程的Stack大小,不熟悉最好保留默认值;2. 如何设置JVM内存分配:(1)当在命令提示符下启动并使用JVM时(只对当前运行的类Test生效):java -Xmx128m -Xms64m -Xmn32m -Xss16m Test(2)当在集成开发环境下(如eclipse)启动并使用JVM时:a. 在eclipse根目录下打开eclipse.ini,默认内容为(这里设置的是运行当前开发工具的JVM内存分配):-vmargs -Xms40m -Xmx256m -vmargs表示以下为虚拟机设置参数,可修改其中的参数值,也可添加-Xmn,-Xss,另外,eclipse.ini内还可以设置非堆内存,如:-XX:PermSize=56m,-XX:MaxPermSize=128m。此处设置的参数值可以通过以下配置在开发工具的状态栏显示:在eclipse根目录下创建文件options,文件内容为:org.eclipse.ui/perf/showHeapStatus=true修改eclipse根目录下的eclipse.ini文件,在开头处添加如下内容:-debug options -vm javaw**** 重新启动eclipse,就可以看到下方状态条多了JVM信息。
本文由宠物迷 百科常识栏目发布,非常欢迎各位朋友分享到个人朋友圈,但转载请说明文章出处“jboss内存配置问题”
下一篇
清炒茄子怎么做?